package com.jwds.digital.bios.business.core.infrastructure.dto.belt.assembler;

import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltTrackReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltTrackRespVO;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltTrack;
import java.util.Objects;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * BeltTrack DTO与Entity之间的相互转换
 *
 * @author 林柏云
 * @date 2024-12-06
 */
public class BeltTrackAssembler {

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @return 实体对象
  */
  public static BeltTrack dto2entity(BeltTrackReqDTO dto)  {
    if (dto == null) {
      return null;
    }
    BeltTrack entity = new BeltTrack();
    entity.setFlowNo(dto.getFlowNo());
    entity.setBeltCode(dto.getBeltCode());
    entity.setStartFlag(dto.getStartFlag());
    entity.setLoadStatus(dto.getLoadStatus());
    entity.setAddUpWeight(dto.getAddUpWeight());
    entity.setRecordTime(dto.getRecordTime());
    return entity;
  }

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @param entity 原实体对象
  * @return 实体对象
  */
  public static BeltTrack dto2entity(BeltTrackReqDTO dto, BeltTrack entity){
    if (dto == null) {
      return null;
    }
    if(Objects.nonNull(dto.getFlowNo())) {
      entity.setFlowNo(dto.getFlowNo());
    }
    if(Objects.nonNull(dto.getBeltCode())) {
      entity.setBeltCode(dto.getBeltCode());
    }
    if(Objects.nonNull(dto.getStartFlag())) {
      entity.setStartFlag(dto.getStartFlag());
    }
    if(Objects.nonNull(dto.getLoadStatus())) {
      entity.setLoadStatus(dto.getLoadStatus());
    }
    if(Objects.nonNull(dto.getAddUpWeight())) {
      entity.setAddUpWeight(dto.getAddUpWeight());
    }
    if(Objects.nonNull(dto.getRecordTime())) {
      entity.setRecordTime(dto.getRecordTime());
    }
    return entity;
  }

  /**
  * 将实体对象转换为传输对象
  *
  * @param entity 实体对象
  * @return 传输对象
  */
  public static BeltTrackRespVO entity2dto(BeltTrack entity) {
    if (entity == null) {
      return null;
    }
    BeltTrackRespVO dto = new BeltTrackRespVO();
    dto.setId(entity.getId());
    dto.setFlowNo(entity.getFlowNo());
    dto.setBeltCode(entity.getBeltCode());
    dto.setStartFlag(entity.getStartFlag());
    dto.setLoadStatus(entity.getLoadStatus());
    dto.setAddUpWeight(entity.getAddUpWeight());
    dto.setRecordTime(entity.getRecordTime());
    dto.setCreateTime(entity.getCreateTime());
    return dto;
  }

}
